package com.internetCafes.spms.web.customer.model.customer;

import com.internetCafes.spms.common.utils.entity.page.PageOrderDo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 客户分页请求参数
 */
@Data
public class CustomerPagingDo {

    /*
    "typeId":3,
    "enterpriseFlag":1,
    "deptId":1,
    "followUserId":1,
    "name":"企业名称",
    "areaId":1,
    "cityId":4,
    "certificateCode":"CSDFDED4857943",
    "regularFlag":0,
    "mainlyFlag":1,
    "unFollowFlag":0,
    "dealFlag":1
     */

    /**
     * 客户类别 1-成交客户 2-意向客户 3-一般客户
     */
    private Integer typeId;

    /**
     * 是否是企业客户 0-默认 1-企业客户
     */
    private Integer enterpriseFlag;

    /**
     * 部门id
     */
    private Long deptId;

    /**
     * 获取部门以下部门列表
     */
    private List<Long> deptIdList;

    /**
     * 更进人id
     */
    private Long followUserId;

    /**
     * 名称/姓名
     */
    private String name;

    /**
     * 市id
     */
    private Long cityId;

    /**
     * 区id
     */
    private Long areaId;

    /**
     * 信用代码
     */
    private String certificateCode;

    /**
     * 是否老客户 0-否 1-是
     */
    private Integer regularFlag;

    /**
     * 近期重点客户 0-否 1-是
     */
    private Integer mainlyFlag;

    /**
     * 一个月未跟进客户 0-否 1-是
     */
    private Integer unFollowFlag;

    /**
     * 近两年成交 0-否 1-是
     */
    private Integer dealFlag;

    /**
     * 联系人姓名
     */
    private String contactsName;

    /**
     * 联系人手机号
     */
    private String contactsMobile;

    /**
     * 消费次数 下限
     */
    private Integer costAmountLower;

    /**
     * 消费次数 上限
     */
    private Integer costAmountUpper;

    /**
     * 管理人id
     */
    private Long managerId;

    /**
     * 销售id
     */
    private Long saleId;

    /**
     * 部门管理人id
     */
    private Long deptManagerId;

    /**
     * 租户id
     */
    private Long tenantId;

    /**
     * 资质等级 0-特级 1-一级 2-二级 3-三级
     */
    private List<Integer> gradeTagList;

    /**
     * 资质id列表
     */
    private List<Long> qualiIdList;

    /**
     * 部门id列表
     */
    private List<Long> managerDeptIdList;

    /**
     * 管理员信息
     */
    private GeneralManagerInfo generalManagerInfo;

    /**
     * 区域销售信息
     */
    private GeneralSale generalSale;

    /**
     * 非区域管理销售信息
     */
    private UnGeneralSale unGeneralSale;

    /**
     * 销售区域id列表
     */
    private List<Long> saleAreaIdList;

    /**
     * 区域销售id
     */
    private Long areaSaleId;

    /**
     *  近期转让标签 1-是 0-否
     */
    private Integer transferRecentFlag;

    /**
     * 排序请求参数
     */
    private PageOrderDo pageOrderDo;

    /**
     * 非区域名单
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class UnGeneralSale{
        /**
         * id
         */
        private Long id;

        /**
         * 授权部门id列表
         */
        private List<Long> deptIdList;
    }

    /**
     * 区域名单销售
     */
    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public class GeneralSale {

        /**
         * 销售id
         */
        private Long id;

        /**
         * 区域id列表
         */
        private List<Long> areaIdList;
    }

    /**
     * 管理员信息
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class GeneralManagerInfo {

        /**
         * id
         */
        private Long id;

        /**
         * 用户id列表
         */
        private List<Long> userIdList;

        /**
         * 区域id列表
         */
        private List<Long> areaIdList;
    }

}
